home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il_c / ilHwSetGlobalEnable.z / ilHwSetGlobalEnable
Encoding:
Text File  |  2002-10-03  |  31.1 KB  |  463 lines

  1.  
  2.  
  3.  
  4. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee,,,, iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss,,,,
  10.      iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss,,,, iiiillllHHHHwwwwRRRReeeessssoooollllvvvveeeeEEEEnnnnaaaabbbblllleeee,,,, iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss,,,,
  11.      iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss,,,, iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss,,,, iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss,,,,
  12.      iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee,,,, iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn,,,, iiiillllSSSSeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn,,,,
  13.      iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee,,,, iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn,,,, iiiillllGGGGeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn,,,,
  14.      iiiillllGGGGeeeettttCCCCuuuurrrrCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee,,,, iiiillllFFFFlllluuuusssshhhhCCCCaaaacccchhhheeee,,,, iiiillllCCCCoooommmmppppaaaaccccttttCCCCaaaacccchhhheeee,,,,
  15.      iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee,,,, iiiillllSSSSeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss,,,, iiiillllGGGGeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss,,,,
  16.      iiiillllSSSSeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee,,,, iiiillllGGGGeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee,,,, iiiillllSSSSeeeettttDDDDiiiitttthhhheeeerrrr,,,, iiiillllGGGGeeeettttDDDDiiiitttthhhheeeerrrr,,,,
  17.      iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwRRRReeeemmmmoooovvvveeeeGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt
  18.      iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt,,,, iiiillllHHHHwwwwFFFFiiiinnnnddddHHHHiiiinnnnttttIIIIDDDD - convenience
  19.      functions for configuring the IL environment
  20.  
  21. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  22.      #include <il/ilCdefs.h>
  23.  
  24.      void ilHwSetGlobalEnable(ilHwAccelEnable enable)
  25.      ilHwAccelEnable ilHwGetGlobalEnable()
  26.      void ilHwSetGlobalEnableClass(ilClassId id, ilHwAccelEnable enable)
  27.      ilHwAccelEnable ilHwGetGlobalEnableClass(ilClassId id)
  28.      ilHwAccelEnable ilHwResolveEnable(ilHwAccelEnable objEnable,
  29.                     iflClassId id)
  30.  
  31.      void ilSetMaxCacheSize(int maxBytes)
  32.      int ilGetMaxCacheSize()
  33.      void ilSetMaxCacheFraction(float fraction)
  34.      float ilGetMaxCacheFraction()
  35.      void ilSetCompactFraction(float maxWastedFraction)
  36.      float ilGetCompactFraction()
  37.      int ilGetCurCacheSize()
  38.      int ilFlushCache(int maxSize)
  39.      void ilCompactCache(float maxWastedFraction)
  40.      ilStatus ilConfigureRetainedCache(int tileCount, ilImageTile* tiles,
  41.                                        float minBudget, float maxBudget,
  42.                                        size_t* retainedFileSize)
  43.  
  44.      void ilMpSetMaxComputeThreads(int compute)
  45.      int ilMpGetMaxComputeThreads()
  46.      void ilMpSetMaxReadThreads(int read)
  47.      int ilMpGetMaxReadThreads()
  48.  
  49.      void ilSetNumPBuffers(Display* dpy, int num)
  50.      int ilGetNumPBuffers(Display* dpy)
  51.  
  52.      ilStatus ilSetRenderingStyle(Display* dpy, ilRenderingStyle style)
  53.      ilRenderingStyle ilGetRenderingStyle(Display* dpy)
  54.  
  55.      void ilSetDither(int mode)
  56.      int ilGetDither()
  57.  
  58.      ilStatus ilHwSetGlobalHint(ilHwHint* hint, int adopt)
  59.      ilStatus ilHwSetGlobalIntHint(int hintID, int val)
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  71.  
  72.  
  73.  
  74.      ilStatus ilHwSetGlobalIntHintName(const char* hintName, int val)
  75.      const ilHwHint* ilHwGetGlobalHint(int hintID)
  76.      const ilHwHint* ilHwGetGlobalHintName(const char* hintName)
  77.      int ilHwGetGlobalIntHint(int hintID, int* val)
  78.      int ilHwGetGlobalIntHintName(const char* hintName, int* val)
  79.      ilStatus ilHwRemoveGlobalHint(int hintID)
  80.      ilStatus ilHwRemoveGlobalHintName(const char* hintName)
  81.      int ilHwFindHintID(const char* hintName)
  82.  
  83.  
  84. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  85.      These functions are used to configure the global IL environment. In
  86.      particular, the multi-processing, graphics hardware acceleration, the
  87.      dithering for colorindex images, the use of pbuffers and caching
  88.      capabilities of the IL can be controlled using these routines.
  89.  
  90.    MMMMuuuullllttttiiii----TTTThhhhrrrreeeeaaaadddd CCCCoooonnnnttttrrrroooollll
  91.      iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss() sets the maximum number of concurrently
  92.      executing computation threads to _c_o_m_p_u_t_e.  The default value for _c_o_m_p_u_t_e
  93.      is equal to the number of processors on the host.
  94.      iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss() returns the value of this limit as set by
  95.      iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxCCCCoooommmmppppuuuutttteeeeTTTThhhhrrrreeeeaaaaddddssss() or the _I_L__C_O_M_P_U_T_E__T_H_R_E_A_D_S environment
  96.      variable.
  97.  
  98.      iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss() sets the maximum number of concurrently executing
  99.      disk read threads to _r_e_a_d.  The default value for _r_e_a_d is one.
  100.      iiiillllMMMMppppGGGGeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddssssTTTThhhhrrrreeeeaaaaddddssss() returns the value of this limit as set by
  101.      iiiillllMMMMppppSSSSeeeettttMMMMaaaaxxxxRRRReeeeaaaaddddTTTThhhhrrrreeeeaaaaddddssss() or the _I_L__R_E_A_D__T_H_R_E_A_D_S environment variable.
  102.  
  103.      The 'set' versions of these routines must be called before issuing any
  104.      requests that takes advantage of the multi-processing capabilities.
  105.  
  106.    IIIImmmmaaaaggggeeee DDDDaaaattttaaaa CCCCaaaacccchhhheeee CCCCoooonnnnttttrrrroooollll
  107.      The IL maintains a global page data cache for all objects derived from
  108.      ilCacheImg.  The size of this cache can be set either with
  109.      iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee() or iiiillllSSSSeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn(); the former sets the total
  110.      size of the cache in bytes, the latter sets the cache size as a fraction
  111.      of the available user memory on the system. IL's default cache size is
  112.      30% of the available memory.  The current values of these limits can be
  113.      obtained with iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee() and iiiillllGGGGeeeettttMMMMaaaaxxxxCCCCaaaacccchhhheeeeFFFFrrrraaaaccccttttiiiioooonnnn().
  114.  
  115.      The current size of the global page cache can be interrogated with
  116.      iiiillllGGGGeeeettttCCCCuuuurrrrCCCCaaaacccchhhheeeeSSSSiiiizzzzeeee().
  117.  
  118.      The global cache is maintained in a special memory pool that allows the
  119.      cache memory to be compacted to eliminated memory fragmentation problems.
  120.      When fragmentation exceeds a defined threshold the pool is automatically
  121.      compacted.  The fragmentation threshold can be set with
  122.      iiiillllSSSSeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn() to the maximum fraction of the pool that is
  123.      allowed to be wasted space before compaction occurs.  The current value
  124.      of this threshold can be obtained with iiiillllGGGGeeeettttCCCCoooommmmppppaaaaccccttttFFFFrrrraaaaccccttttiiiioooonnnn().  The
  125.      default compact fraction value is .2 or 20%.
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  137.  
  138.  
  139.  
  140.      You can force compaction of the pool at any time by calling
  141.      iiiillllCCCCoooommmmppppaaaaccccttttCCCCaaaacccchhhheeee(). If the pool is more fragmented than the fraction passed
  142.      to this routine it will be compacted.  You can pass zero to cause the
  143.      pool to be unconditionally compacted.
  144.  
  145.      You can free the memory in the global page cache to get it down to a
  146.      desired maximum size with iiiillllFFFFlllluuuusssshhhhCCCCaaaacccchhhheeee().  This call will also cause the
  147.      cache memory to be compacted.
  148.  
  149.      The function iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() provides means to globally
  150.      analyze an IL operator chain and set the "retained" mode on selected
  151.      critical operators that can help reduce or eliminate thrashing in a
  152.      cache-limited situation.  If an operator is "retained" then its cache is
  153.      backed-up to a disk file.  When you have insufficient cache to complete
  154.      an operation without reclaiming any cache pages, it is important to set
  155.      the retained mode for operators that have a high page recomputation cost,
  156.      in terms of input cache memory requirements.  It's difficult in general
  157.      to determine the best subset of operators to be retained for a particular
  158.      operation, so you can use iiiillllCCCCoooonnnnffffiiiigggguuuurrrreeeeRRRReeeettttaaaaiiiinnnneeeeddddCCCCaaaacccchhhheeee() to make this
  159.      determination.
  160.  
  161.      The function must be passed a set of tiles that describe the output data
  162.      that is being "pulled" for a particular computation.  For instance, if
  163.      you are about to call ggggeeeettttTTTTiiiilllleeee() on a particular image object, then you
  164.      would pass the single tile, specifying the image and the tile coordinates
  165.      for the ggggeeeettttTTTTiiiilllleeee() call.  On the other hand, if you were about to display
  166.      a set of images, you would pass an array of tiles, specifying the
  167.      displayed part of each of the images.  The function descends recursively
  168.      through the IL chain from output to input, using the virtual ilImage
  169.      method, ggggeeeettttIIIInnnnppppuuuuttttTTTTiiiilllleeeeRRRReeeeqqqquuuuiiiirrrreeeemmmmeeeennnntttt(), to assess the cache requirements for
  170.      the specified operation.  If at any point in the chain it is determined
  171.      that the available cache will be exceeded, then one or more operators
  172.      will be set with the retained cache mode.
  173.  
  174.      You can optionally pass minimum and maximum cache budget parameters,
  175.      expressed as fractions of the total cache, that limit the per-page cost
  176.      for non-retained operators.  The maximum cache budget specifies the cost
  177.      limit for the output of the chain.  This number is reduced as the
  178.      function traverses from output to input, according to the amount of fan-
  179.      in at each operator.  The minimum cache budget is the lower bound for
  180.      this reduced cost.  The default values are 1.0 and 0.05, respectively.
  181.      You can lower the maximum cache budget if you want to allow some cushion
  182.      in the cache.  You can raise the minimum cache budget if you are running
  183.      single-threaded (since input tiles are computed serially in this case).
  184.  
  185.      Finally, if the _r_e_t_a_i_n_e_d_F_i_l_e_S_i_z_e argument is non-NULL, then on return it
  186.      will contain the worst-case total disk requirement, in bytes, of the
  187.      retained operators.  If this number is too large, then you can call the
  188.      function again with increased budget parameters, which should result in a
  189.      smaller disk requirement.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  203.  
  204.  
  205.  
  206.      The function returns _i_l_O_K_A_Y if it is successful in meeting the budget
  207.      requirements.  It returns _i_l_F_A_I_L_E_D if not.  It returns _i_l_B_A_D_I_N_P_U_T if any
  208.      of the images in the chain have non-_i_l_O_K_A_Y status.
  209.  
  210.    PPPPbbbbuuuuffffffffeeeerrrrssss
  211.      A _p_b_u_f_f_e_r is a non-visible rendering buffer for an OpenGL renderer. Since
  212.      rendering to pbuffers makes use of the same graphics acceleration as
  213.      rendering to the visible framebuffer, pbuffers may be used to cache
  214.      intermediate results.  The number and size of pbuffers available is
  215.      hardware dependent.  iiiillllSSSSeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss() sets the maximum number of
  216.      pbuffers requested by IL for X display _d_p_y to _n_u_m.  iiiillllGGGGeeeettttNNNNuuuummmmPPPPBBBBuuuuffffffffeeeerrrrssss()
  217.      returns the numbers of pbuffers in use.
  218.  
  219.    RRRReeeennnnddddeeeerrrriiiinnnngggg SSSSttttyyyylllleeee
  220.      IL can render using OpenGL or X11. By default, OpenGL is chosen if
  221.      available. X rendering is used primarily for rendering to a remote
  222.      machine that does not support OpenGL. A rendering style can be requested
  223.      explicitly with iiiillllSSSSeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee() and a style of either
  224.      _i_l_O_p_e_n_G_L_R_e_n_d_e_r_i_n_g or _i_l_X_R_e_n_d_e_r_i_n_g. If OpenGL rendering is requested, but
  225.      not supported on the X connection, as status of _i_l_U_N_S_U_P_P_O_R_T_E_D is
  226.      returned, and X rendering is set.  iiiillllGGGGeeeettttRRRReeeennnnddddeeeerrrriiiinnnnggggSSSSttttyyyylllleeee() returns the
  227.      style which is actually in use.
  228.  
  229.    DDDDiiiitttthhhheeeerrrriiiinnnngggg ccccaaaappppaaaabbbbiiiilllliiiittttiiiieeeessss
  230.      IL maintains a global dithering mode, that can be used to control the
  231.      dithering used to produce colorindex images. iiiillllSSSSeeeettttDDDDiiiitttthhhheeeerrrr() can be used to
  232.      set the dithering to either _i_l_N_o_D_i_t_h_e_r for no dithering, _i_l_F_S_D_i_t_h_e_r for
  233.      Floyd-Steinberg dithering or _i_l_S_G_I_D_i_t_h_e_r for standard SGI dithering.
  234.      iiiillllGGGGeeeettttDDDDiiiitttthhhheeeerrrr returns the current dithering mode. To interpret the value
  235.      returned by iiiillllGGGGeeeettttDDDDiiiitttthhhheeeerrrr look at the enum iiiillllDDDDiiiitttthhhheeeerrrr in ilConfigure.h.
  236.  
  237.    HHHHaaaarrrrddddwwwwaaaarrrreeee AAAAcccccccceeeelllleeeerrrraaaattttiiiioooonnnn CCCCoooonnnnttttrrrroooollll
  238.      iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee() globally enables or disables the hardware
  239.      acceleration features of the IL, while iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss() applies
  240.      to objects of a specific class.  The _c_l_a_s_s_I_d parameter is formed using
  241.      the iiiillllCCCCllllaaaassssssssIIIIDDDD macro defined in <il/ilTypes.h>.  The _e_n_a_b_l_e parameter is
  242.      one of the following values:
  243.  
  244.      _i_l_H_w_A_c_c_e_l_O_f_f       Hardware acceleration is disabled.
  245.  
  246.      _i_l_H_w_A_c_c_e_l_O_n        Hardware acceleration is enabled.
  247.  
  248.      _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t   Fall through to the more generalized enable for
  249.                         hardware acceleration (see below).
  250.  
  251.      Specific instantiations of operators can be disabled by using the
  252.      hhhhwwwwAAAAcccccccceeeelllleeeerrrraaaatttteeee() method on ilImage and ilImgStat.
  253.  
  254.      iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee() returns the global hardware acceleration enabling
  255.      as set by iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeee(), or by the environment variable
  256.      _I_L__H_W__A_C_C_E_L_E_R_A_T_E.  Similarly, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss() returns the
  257.      class-specific enables as set by iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllEEEEnnnnaaaabbbblllleeeeCCCCllllaaaassssssss().
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  269.  
  270.  
  271.  
  272.      The effective acceleration enable for a particular object is determined
  273.      as follows:  first, if the enable member of the object is set to anything
  274.      other than _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t, then that enable specifies the acceleration
  275.      for the object.  If its enable is _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t, then that object's
  276.      class enable is checked.  If that value is also _i_l_H_w_A_c_c_e_l_D_e_f_a_u_l_t, then
  277.      the global enable is checked.  The global enable is initialized to the
  278.      value of the environment variable _I_L__H_W__A_C_C_E_L_E_R_A_T_E, or to iiiillllHHHHwwwwAAAAcccccccceeeellllOOOOnnnn if
  279.      the environment variable is not set.  Use iiiillllHHHHwwwwRRRReeeessssoooollllvvvveeeeEEEEnnnnaaaabbbblllleeee() to query an
  280.      object's effective enable.
  281.  
  282.    HHHHaaaarrrrddddwwwwaaaarrrreeee HHHHiiiinnnnttttssss
  283.      To control how hardware acceleration is performed, ImageVision provides a
  284.      set of hardware hints. The ilImage class provides the mechanisms specify
  285.      hints on individual images. In those cases where the hint is intended to
  286.      affect all images that support the hint, the a global hint can be set.
  287.      The iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt function sets a global hint, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt and
  288.      iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllHHHHiiiinnnnttttNNNNaaaammmmeeee retrieves a global hint, and iiiillllHHHHwwwwRRRReeeemmmmoooovvvveeeeGGGGlllloooobbbbaaaallllHHHHiiiinnnntttt
  289.      and iiiillllHHHHwwwwRRRReeeemmmmoooovvvveeeeGGGGlllloooobbbbaaaallllHHHHiiiinnnnttttNNNNaaaammmmeeee remove a global hint.  The functions
  290.      iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt, iiiillllHHHHwwwwSSSSeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnnttttNNNNaaaammmmeeee, iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnntttt, and
  291.      iiiillllHHHHwwwwGGGGeeeettttGGGGlllloooobbbbaaaallllIIIInnnnttttHHHHiiiinnnnttttNNNNaaaammmmeeee provide a simplified interface to set and get
  292.      integer-valued hints.  The function iiiillllHHHHwwwwFFFFiiiinnnnddddHHHHiiiinnnnttttIIIIDDDD returns the unique
  293.      global identifier associated with the hint name.  It is much more
  294.      efficient to query hint values using the hint identifier, rather than
  295.      using its name.
  296.  
  297.      The following hints are recognized within the IL (these hint names are
  298.      declared in _i_l_H_w_H_i_n_t._h):
  299.  
  300.      _I_L__T_E_X_T_U_R_E__S_I_Z_E__H_I_N_T
  301.              An integer-valued texture allotment hint for warp operator input.
  302.              It specifies the maximum number of texels that can be used by the
  303.              object.  Texture size is also limited by the hardware
  304.              configuration.
  305.  
  306.      _I_L__T_E_X_T_U_R_E__C_O_M_P_O_N_E_N_T__S_I_Z_E__H_I_N_T
  307.              An integer-valued texture component size hint for warp operators.
  308.              It specifies the minimum number of bits per component that is
  309.              used, along with the object's color model and resampling type, to
  310.              determine the internal texture format.
  311.  
  312.      _I_L__T_E_X_T_U_R_E__M_E_S_H__S_T_E_P__H_I_N_T
  313.              An integer-valued hint that specifies the desired warp mesh step
  314.              size in units of output pixels.  Generally a larger number for
  315.              this value will reduce mesh generation time at the cost of
  316.              reduced warp accuracy.  The default value is 16.  The range of
  317.              allowable values is from 2 to 128.
  318.  
  319.      _I_L__P_I_X_E_L__B_U_F_F_E_R__W_I_D_T_H__H_I_N_T, (_I_L__P_I_X_E_L__B_U_F_F_E_R__H_E_I_G_H_T__H_I_N_T)
  320.              Integer-valued hints that specify the maximum desired size of a
  321.              pixel buffer.  The actual allocated size of the pbuffer may be
  322.              smaller than this if the server cannot support the desired size.
  323.              Also, it is often the case that the server will allocate a
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  335.  
  336.  
  337.  
  338.              pbuffer that is larger than the desired size simply because it
  339.              can only allocate screen-sized pbuffers.  In this case the
  340.              effective size of the pbuffer is the desired size and the
  341.              remaining server-allocated pbuffer space is unused.  These hints
  342.              are intended for debug purposes only.  They have meaning only as
  343.              global hints.
  344.  
  345.      _I_L__T_E_X_T_U_R_E__F_R_O_M__P_B_U_F_F_E_R__O_K__H_I_N_T
  346.              On RE, RE2, and VTX systems, OpenGL does not swap textures that
  347.              have been defined via the ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT() call.  So, if
  348.              a texture has been loaded from image data that originated in a
  349.              pbuffer, and a context switch occurs, or texture must be swapped
  350.              because it is otherwise overcommitted, then the pbuffer-loaded
  351.              texture can become undefined.  Therefore, on these systems only,
  352.              the IL disables loading textures from pbuffers.  The unfortunate
  353.              consequence is that multipass operations are severly hampered on
  354.              RE, RE2, and VTX.  If you know that you're application (and any
  355.              concurrently-running applications) will not overcommit texture,
  356.              then you may re-enable pbuffer-loaded textures by setting this
  357.              hint to _T_R_U_E.
  358.  
  359.      _I_L__T_E_X_T_U_R_E__L_I_M_I_T__H_I_N_T
  360.              This is the total texture byte allocation for use by the IL in
  361.              the application.  The IL uses an LRU replacement policy to
  362.              reclaim textures when this limit is exceeded.  The default value
  363.              is twice the total number of bytes available in texture memory.
  364.  
  365.      Here is an example of how hardware hints can be used within a C++
  366.      program:
  367.  
  368.           ilDisplay* disp = // ...
  369.           ilImage* input = // ...
  370.           ilRotZoomImg rz(input, 45, 1, 1, ilBiLinear);
  371.  
  372.           // display the warped image using default texture size/format
  373.           disp->addView(&rz);
  374.  
  375.           // limit texture size to 256K texels
  376.           input->setHwIntHint(IL_TEXTURE_SIZE_HINT, 512*512);
  377.           // force at least 8 bits per component
  378.           input->setHwIntHint(IL_TEXTURE_COMPONENT_SIZE_HINT, 8);
  379.  
  380.           // display the warped image using at most a 512 by 512 texture
  381.           // and at least 8 bits per component
  382.           disp->paint();
  383.  
  384.  
  385. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  386.      IL(1), ilImgStat, ilOpImg, ilCacheImg, ilImage
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))  IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll  CCCCoooonnnnffffiiiigggguuuurrrriiiinnnngggg IIIILLLL((((3333))))
  401.  
  402.  
  403.  
  404. NNNNOOOOTTTTEEEESSSS
  405.      A number of environment variable control the same functions described
  406.      above.  Refer to IIIILLLL((((1111)))) for more details.
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.